package com.baichang.taoshunda.utils;

import com.baichang.framework.utils.DateUtil;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;

/**
 * Created by ${wushenglu} on 2017/8/17 0017.
 */
public class ConvertTypeUtils {
    /**
     * 对象转换为BigDecimal类型
     *
     * @param obj
     * @return
     */
    public static BigDecimal obj2BigDecimal(Object obj) {
        return BigDecimal.valueOf(Double.valueOf(String.valueOf(obj == null ? 0 : obj)));
    }

    /**
     * 对象转换为Double类型
     *
     * @param obj
     * @return
     */
    public static Double obj2Double(Object obj) {
        return Double.valueOf(String.valueOf(obj == null ? 0 : obj));
    }

    /**
     * 对象转换为Integer类型
     *
     * @param obj
     * @return
     */
    public static Integer obj2Integer(Object obj) {
        return Integer.valueOf(String.valueOf(obj == null ? 0 : obj));
    }

    /**
     * 对象转换为Float类型
     *
     * @param obj
     * @return
     */
    public static Float obj2Float(Object obj) {
        return Float.valueOf(String.valueOf(obj == null ? 0 : obj));
    }

    /**
     * 对象转换为日期类型
     *
     * @param obj
     * @return
     */
    public static Date obj2DateTime(Object obj) {
        try {
            return obj == null ? null : DateUtil.parseDate(String.valueOf(obj), DateUtil.FULL_DATE_TIME_FORMAT);
        } catch (ParseException e) {
            return new Date();
        }
    }

    public static Date obj2DateFormat(Object obj) {
        try {
            return obj == null ? null : DateUtil.parseDate(String.valueOf(obj), DateUtil.DATE_FORMAT);
        } catch (ParseException e) {
            return new Date();
        }
    }

    /**
     * 对象转换为boolean
     *
     * @param obj
     * @return
     */
    public static Boolean obj2Boolean(Object obj) {
        boolean bl;
        try {
            bl = obj == null ? false : (Boolean) obj;
        } catch (Exception e) {
            bl = false;
        }
        return bl;
    }

    /**
     * 对象转换为Long
     *
     * @param obj
     * @return
     */
    public static Long obj2Long(Object obj) {
        return obj == null ? 0 : Long.parseLong(obj.toString());
    }
}
